iT邦幫忙

DAY 24
0

今天來討論一下排除及簡記法.
在之前例子中,多是使用列舉,
在一些情況下用排除會比較方便.

來看以下的例子

In [1]: import re

In [2]: re.search("[^0-9][0-9]", "G7") != None
Out[2]: True

列舉前面加個^,就變排除了.注意,這裡的^不是錨點.
再來看下面的例子

In [3]: re.search("[^0-9][0-9]", "7") != None
Out[3]: False

False的原因,很簡單,個數不符合! 排除數字,但是空(Null)是
無法比較的.

簡記法

雖然列舉可以讓我們寫出需要的pattern,但是有若有簡易的方式
來表達,會更方便.
常見的有:

\d 代表 digital,數字.
\w 代表 word, 相當於 [0-9A-Za-z_]
\s 代表 space, 空白 Tab 換行或換頁, 相當於 [ \t\r\n\v\f]

\D \W \S 分別對應 \d \w \s 的排除方式.

來看以下的例子:

In [4]: re.search(r"\d", "7") != None
Out[4]: True

In [5]: re.search(r"\d", "x") != None
Out[5]: False

In [6]: re.search(r"\w", "7") != None
Out[6]: True

In [7]: re.search(r"\w", "x") != None
Out[7]: True

注意到 7也屬於 word.

In [8]: re.search(r"\w", "@") != None
Out[8]: False

符號不屬於 word

In [9]: re.search(r"\s", " ") != None
Out[9]: True

空白屬於 space

In [10]: re.search(r"\s", "") != None
Out[10]: False

Null 不屬於 space

上一篇
過濾資料探討3
下一篇
過濾資料探討5
系列文
蠻可愛的資料庫與資料處理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言